import { fileURLToPath, URL } from "node:url"

import { defineConfig } from "vite"
import vue from "@vitejs/plugin-vue"

export default defineConfig({
  base: ".",
  plugins: [
    vue(),
  ],
  resolve: {
    alias: {
      "@": fileURLToPath(new URL("./src", import.meta.url))
    },
  },
  // 服务端渲染
  server: {
    // 端口号
    port: 5200,
    host: "0.0.0.0",
    // 本地跨域代理
    proxy: {
      // "/dev": {
      //   target: "http://192.168.1.129:8801",
      //   changeOrigin: true,
      //   rewrite: (path) => path.replace(/^\/dev/, "")
      // }
    },
    // 预热文件以提前转换和缓存结果，降低启动期间的初始页面加载时长并防止转换瀑布
    warmup: {
      clientFiles: ["./index.html", "./src/{views,components}/*"]
    }
  },
  esbuild: {
    pure: ["console.log"],
    drop: ["debugger"]
  },
  build: {
    target: "es2015",
    sourcemap: false,
    // 消除打包大小超过500kb警告
    chunkSizeWarningLimit: 4000,
    rollupOptions: {
      // 静态资源分类打包
      output: {
        chunkFileNames: "static/js/[name]-[hash].js",
        entryFileNames: "static/js/[name]-[hash].js",
        assetFileNames: "static/[ext]/[name]-[hash].[ext]",
        // 移除 assetsPublicPath，因为 Rollup 不支持这个选项
        // assetsPublicPath: "./"
      }
    }
  },
})
